package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

/**
 * List集合
 * java.util.List接口，其继承自Collection。
 * List集合的特点是可以存放个重复元素并且有序，提供了一些通过下标操作元素的
 * 方法
 * 常用实现类：
 * java.util.ArrayList：使用数组实现，查询性能更好
 * java.util.ListedList：使用链表实现，增删性能更好，首尾增删元素性能最佳
 */
public class ListDemo1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("five");
        System.out.println(list);

        /*
        E get(int index)
        获取当前集合下指定下标处对应的元素
         */
        String str = list.get(2);
        System.out.println(str);
        for (int i=0;i<list.size();i++){
            System.out.println(list.get(i));
        }
        /*
        E set(int index ,E e)
        将给定元素设置到指定位置，返回值为该元素原来的位置
         */
        /*
        System.out.println(list);
        String old = list.set(2,"six");
        System.out.println(list);
        System.out.println(old);

         */

       for (int i=0;i<list.size()/2;i++){
          String old=list.set(i,list.get(list.size()-1-i));
          list.set(list.size()-i-1,old);
       }
        System.out.println(list);
        Collections.reverse(list);
        System.out.println(list);

        Collections.shuffle(list);
        System.out.println(list);
    }
}
